package routers

import (
	"yuanaiproblem/controllers"
	"yuanaiproblem/middlewares"

	"github.com/gin-gonic/gin"
)

// SetupRouter 初始化路由配置
func SetupRouter() *gin.Engine {
	r := gin.Default()

	// 全局中间件
	r.Use(
		middlewares.Logger(),
		middlewares.CORS(),
	)

	// 根分组
	apiV1 := r.Group("/api")
	{
		// 统计分析接口
		apiV1.GET("/statistics/user/:id", controllers.GetUserStats)
		apiV1.GET("/statistics/overview", controllers.GetSystemStats)

		// 认证接口
		public := apiV1.Group("/auth")
		{
			public.POST("/login", controllers.Login)
			public.POST("/register", controllers.Register)
		}

		// 登录验证中间件
		apiV1.Use(middlewares.JwtAuthMiddleware())
		apiV1.Use(middlewares.AdminRole())
		{
			// 用户管理
			apiV1.GET("/users", controllers.GetUsers)
			apiV1.PUT("/users/:id", controllers.UpdateUser)
		}
		// 管理员接口
		admin := apiV1.Group("/admin")

		{
			RegisterAdminRoutes(admin) // 注册原管理员接口
		}

		// 普通用户接口
		authed := apiV1.Group("")
		{
			RegisterUserRoutes(authed) // 注册原用户接口
		}
	}

	return r
}
